package com.atomscat.lottery.entity.vo.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

@Setter
@Getter
@Schema(name = "CreateAdminUserRequest", description = "Admin User Request")
public class CreateAdminUserRequest implements Serializable {
    /**
     * The title of the admin user.
     */
    private String title;

    /**
     * The first name of the admin user.
     */
    private String firstName;

    /**
     * The last name of the admin user.
     */
    private String lastName;

    /**
     * The login ID of the admin user.
     */
    @NotBlank(message = "username cannot be empty")
    private String username;

    /**
     * The password of the admin user.
     */
    @NotBlank(message = "password cannot be empty")
    private String password;

    /**
     * The ID of the roles assigned to the admin user.
     */
    @Schema(name = "rolesIds", description = "List of role IDs")
    @NotEmpty(message = "rolesIds cannot be empty")
    @Size(min = 1, message = "rolesIds cannot be empty")
    private List<Long> rolesIds;
}
